<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = [1, 2, 2, 3, 4, 5, 7, 562, 3123, 1, 2, 34, 5];
        // 1
        var newArr1 = [];
        arr.forEach(function(item) {
            //检测当前元素在新数组中是否存在
            if (newArr1.indexOf(item) == -1) {
                //如果不存在就添加进新数组
                newArr1.push(item);
            }
        })
        console.log(newArr1);

        // 2
        var newArr2 = arr.filter(function(item, index) {
            //过滤条件 当前这项的下标刚好是第一次出现的下标
            //当前循环项到这项的下标为 index
            //当前元素在数组第一次出现的位置 arr.indexOf(item)
            return index == arr.indexOf(item);
        });
        console.log(newArr2);

        // 3
        var set = new Set(arr);
        //from 转换为 数组 
        var newArr3 = Array.from(set);
        console.log(newArr3);
    </script>
</body>

</html>